/**
 * Created by fly on 2017/1/16.
 */

$(function () {
    var tableData = [];
    initTable();
    var parentPageId = getQueryString('parentPageId');
    getParamsByparamTypeValue('procurement', "#procurementType");
    $('#title').html(getQueryString('projectName'));
    $("#backbtn").click(function () {
        top.topManager.openPage({
            id : getQueryString('parentPageId'),
            isClose : true
        });
    });

    $('#approval').click(function(){
        $('#approvalModal').modal('show');
    });


    $('#gather').click(function(){
        $('#gatherModal').modal('show');
    });

    //根据角色权限判断是否要显示
    var roleFuncCode = JSON.parse(sessionStorage.getItem("roleFuncCode"));

    if($.inArray("/projectInfo/directEstimate",roleFuncCode)>=0){
        $('#directEstimateLi').show();
        $('#directEstimateLi a[href="#directEstimateTab"]').tab('show');
    }

    if($.inArray("/projectInfo/costEstimate",roleFuncCode)>=0){
        $('#costLi').show();
        $('#costLi a[href="#costTab"]').tab('show');
    }

    if($.inArray("/projectInfo/procurementEstimate",roleFuncCode)>=0){
        $('#procurementEstimateLi').show();
        $('#procurementEstimateLi a[href="#procurementEstimateTab"]').tab('show');
    }

    $('#purchaseDate').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm-dd',
        autoclose: true
    });
    $('#amount').keyup(function () {
        $("#procurementCost").val(formatMoney($('#amount').val() / ($('#vat').val() / 100 + 1)));
    });
    $('#vat').keyup(function () {
        $("#procurementCost").val(formatMoney($('#amount').val() / ($('#vat').val() / 100 + 1)));
    });
    $('#add').click(function () {
        if ($("#procurementEstimateForm").valid()) {
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: ctx + "/procurementEstimate/add",
                data: JSON.stringify({
                    projectId: getQueryString('id'),
                    procurementType: $("#procurementType").val(),
                    amount: $("#amount").val(),
                    vat: $("#vat").val(),
                    purchaseDate: $("#purchaseDate").val(),
                    procurementCost: $("#procurementCost").val().replace(/,/g, ''),
                    remark: $("#remark").val()
                }),
                success: function (data) {
                    if (data.code == 200) {
                        alert(data.data);
                    } else {
                        alert(data.msg);
                    }
                    $('#table').bootstrapTable('refresh', {url: ctx + '/procurementEstimate/query'});
                }
            });
        }
    });
    //采购成本预估验证
    $("#procurementEstimateForm").validate({
        errorElement: 'span',
        errorClass: 'text-error',
        rules: {
            procurementType: {
                required: true,
                trim: true
            },
            amount: {
                required: true,
                trim: true,
                range: [0.00,99999999.99],
                min: 0.00
            },
            vat: {
                required: true,
                trim: true,
                range: [0.00, 99.99],
                min: 0.00
            },
            purchaseDate: {
                required: true,
                trim: true
            }
        },
        messages: {
            procurementType: {
                required: '采购类型不能为空',
                trim: '采购类型不能为空'
            },
            amount: {
                required: '预计采购金额不能为空',
                trim: '预计采购金额不能为空'
            },
            vat: {
                required: '采购税率不能为空',
                trim: '采购税率不能为空'
            },
            purchaseDate: {
                required: '预计采购日期不能为空',
                trim: '预计采购日期不能为空'
            }
        },
        errorPlacement: function (error, element) {
            error.addClass("ui red pointing label transition");
            //error.insertAfter( element);
            $(element.parent()).append(error);
        },
        highlight: function (element, errorClass, validClass) {
            $(element).parents(".row").addClass(errorClass);
        },
        unhighlight: function (element, errorClass, validClass) {
            $(element).parents(".row").removeClass(errorClass);
        }
    });
    var changeFormVal = $("#changeForm").validate({
        errorElement: 'span',
        errorClass: 'text-error',
        rules: {
            changeRemark: {
                required: true,
                trim: true
            }
        },
        messages: {
            changeRemark: {
                required: '备注不能为空',
                trim: '备注不能为空'
            }
        },
        errorPlacement: function (error, element) {
            error.addClass("ui red pointing label transition");
            //error.insertAfter( element);
            $(element.parent()).append(error);
        },
        highlight: function (element, errorClass, validClass) {
            $(element).parents(".row").addClass(errorClass);
        },
        unhighlight: function (element, errorClass, validClass) {
            $(element).parents(".row").removeClass(errorClass);
        }
    });

    $('#realBillDate').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm-dd',
        autoclose:true
    });

    var finishForm = $("#finishForm").validate({
        errorElement: 'span',
        errorClass: 'text-error',
        rules: {
            realBillDate: {
                required: true,
                trim: true
            }
        },
        messages: {
            realBillDate: {
                required: '实际开票日期不能为空',
                trim: '实际开票日期不能为空'
            }
        },
        errorPlacement: function (error, element) {
            error.addClass("ui red pointing label transition");
            //error.insertAfter( element);
            $(element.parent()).append(error);
        },
        highlight: function (element, errorClass, validClass) {
            $(element).parents(".row").addClass(errorClass);
        },
        unhighlight: function (element, errorClass, validClass) {
            $(element).parents(".row").removeClass(errorClass);
        }
    });
    $('#hideChange').click(function () {
        $('#changeModal').modal('hide');
        document.getElementById("changeForm").reset();
        //$("#changeRemark").val('');
    });
    $('#hideFinish').click(function () {
        $('#finishModal').modal('hide');
        document.getElementById("finishForm").reset();
    });

    //人工成本验证规则
    $("#costForm").validate({
        errorElement: 'span',
        errorClass: 'text-error',
        rules: {
            organizationId: {
                required: true,
                trim: true
            },
            salMonth: {
                required: true,
                trim: true
            },
            personnelLevel: {
                required: true,
                trim: true
            },
            day: {
                required: true,
                trim: true,
                range: [0.5,999.5],
                min: 0.5
            }
        },
        messages: {
            organizationId: {
                required: '使用部门不能为空',
                trim: '使用部门不能为空'
            },
            salMonth: {
                required: '预计发生月份不能为空',
                trim: '预计发生月份不能为空'
            },
            personnelLevel: {
                required: '人员级别不能为空',
                trim: '人员级别不能为空'
            },
            day: {
                required: '预计人天不能为空',
                trim: '预计人天不能为空'
            }
        },
        errorPlacement: function (error, element) {
            error.addClass("ui red pointing label transition");
            //error.insertAfter( element);
            $(element.parent()).append(error);
        },
        highlight: function (element, errorClass, validClass) {
            $(element).parents(".row").addClass(errorClass);
        },
        unhighlight: function (element, errorClass, validClass) {
            $(element).parents(".row").removeClass(errorClass);
        }
    });
    //直接成本验证规则
    $("#directEstimateForm").validate({
        errorElement: 'span',
        errorClass: 'text-error',
        rules: {
            costDate: {
                required: true,
                trim: true
            },
            costCategory: {
                required: true,
                trim: true
            },
            costType: {
                required: true,
                trim: true
            },
            costAmount: {
                required: true,
                trim: true,
                range: [0.00,99999999.99],
                min: 0.00
            }
        },
        messages: {
            costDate: {
                required: '预计发生月份不能为空',
                trim:'预计发生月份不能为空'
            },
            costCategory: {
                required: '预计费用类别不能为空',
                trim:'预计费用类别不能为空'
            },
            costType: {
                required: '预计费用类型不能为空',
                trim:'预计费用类型不能为空'
            },
            costAmount: {
                required: '预计费用金额不能为空',
                trim:'预计费用金额不能为空'
            }
        },
        errorPlacement: function (error, element) {
            error.addClass("ui red pointing label transition");
            //error.insertAfter( element);
            $(element.parent()).append(error);
        },
        highlight: function (element, errorClass, validClass) {
            $(element).parents(".row").addClass(errorClass);
        },
        unhighlight: function (element, errorClass, validClass) {
            $(element).parents(".row").removeClass(errorClass);
        }
    });
    //人工成本
    $('#salMonth').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm',
        startView: 'months',
        maxViewMode:'years',
        minViewMode:'months',
        autoclose: true
    });
    getLevelValue('personnelLevel', "#personnelLevel");

    $('#personnelLevel').on('change',function (item) {
        var paramVal = $('#personnelLevel option:selected').data('val');
        $("#totalAmount").val(formatMoney(paramVal * $('#day').val()));
    });
    $('#day').keyup(function () {
        var paramVal = $('#personnelLevel option:selected').data('val');
        $("#totalAmount").val(formatMoney(paramVal * $('#day').val()));
    });
    $('#CostAdd').click(function () {
        if ($("#costForm").valid()) {
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: ctx + "/costEstimate/add",
                data: JSON.stringify({
                    projectId: getQueryString('id'),
                    salMonth: $("#salMonth").val(),
                    organizationId: $("#organizationId").val(),
                    totalAmount: $("#totalAmount").val().replace(/,/g, ''),
                    remark: $("#Costremark").val(),
                    personnelLevel: $("#personnelLevel").val(),
                    day: $("#day").val()
                }),
                success: function (data) {
                    if (data.code == 200) {
                        alert(data.data);
                    } else {
                        alert(data.msg);
                    }
                    refreshCost();
                }
            });
        }
    })
    $.ajax({
        type: "POST",
        url: ctx + "/organization/getOrganization",
        success: function(data){
            if(data.code == 200){
                setOption('#organizationId', data.data)
            }
        }
    });
    function setOption(id, param){
        var html = '';
        html +='<option value="">请选择</option>';
        for (var i =0;i<param.length;i++){
            html +='<option value="'+ param[i].organizationId +'">'+ param[i].orgName +'</option>';
        }
        $(id).append(html);
    }

    //直接费用
    $('#costDate').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm',
        startView: 'months',
        maxViewMode:'years',
        minViewMode:'months',
        autoclose: true
    });

    //加载费用类别下拉列表
    getChildParamType('直接费用类别', "#costCategory");

    //联动加载直接费用类型
    $("#costCategory").on("change",function(){
        $.ajax({
            type: "POST",
            url: ctx + "/parameter/queryByParameterType",
            data:{
                parameterType: $("#costCategory").val()
            },
            success: function(data){
                if(data.code == 200){
                    $("#costType").empty();
                    var html = '';
                    html +='<option value="">请选择</option>';
                    for (var i =0;i<data.list.length;i++){
                        html +='<option';
                        if(data.list[i].paramValue){
                            html +=' data-val="'+data.list[i].paramValue+'"'
                        }
                        html += ' value="'+ data.list[i].paramId +'">'+ data.list[i].paramName +'</option>';
                    }
                    $("#costType").append(html);
                }
            }
        })
    });


    $('#DirectrAdd').click(function () {
        if ($("#directEstimateForm").valid()) {
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: ctx + "/directEstimate/add",
                data: JSON.stringify({
                    projectId: getQueryString('id'),
                    costDate: $("#costDate").val(),
                    costCategory: $("#costCategory option:selected").data('val'),
                    costType: $("#costType").val(),
                    costAmount: $("#costAmount").val().replace(/,/g, ''),
                    remark: $("#Directremark").val()
                }),
                success: function (data) {
                    if (data.code == 200) {
                        alert(data.data);
                    } else {
                        alert(data.msg);
                    }
                    $('#directEstimatetable').bootstrapTable('refresh', {url: ctx + '/directEstimate/query'});
                }
            });
        }
    })
});
function  initTable() {
    $('#table').bootstrapTable({
        /*height: top.frameHeight*0.7 ,*/
        url: ctx + '/procurementEstimate/query', //这个接口需要处理bootstrap table传递的固定参数
        method:'post',
        dataType: "json",
        cache: false,   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",   //post请求,content type默认设置为 text/plain,在服务端直接通过 @RequestParam参数映射是获取不到的。
        striped: true,      //是否显示行间隔色
        pagination: false,     //是否显示分页（*）
        sortable: false,      //是否启用排序
        sortOrder: "asc",     //排序方式
        queryParamsType:'',  //默认值为 'limit' ,在默认情况下 传给服务端的参数为：offset,limit,sort
        //设置为 ''  在这种情况下传给服务器的参数为：pageSize,pageNumber
        queryParams : queryParams,    //前端调用服务时，会默认传递上边提到的参数，如果需要添加自定义参数，可以自定义一个函数返回请求参数
        sidePagination: "server",   //分页方式：client客户端分页，server服务端分页（*）
        responseHandler:function(res){
            //远程数据加载之前,处理程序响应数据格式,对象包含的参数: 我们可以对返回的数据格式进行处理
            //在ajax后我们可以在这里进行一些事件的处理
            tableData = res.data;
            return {
                rows:res.data,
                total:res.data.length
            }
        },
        strictSearch: true,
        clickToSelect: true,    //是否启用点击选中行
        searchOnEnterKey: true,
        showFooter: false,
        onLoadSuccess:function (data) {
            $('[data-toggle="tooltip"]').tooltip();
        },
        columns: [{
            title: '序号',  //标题  可不加
            align: 'center',
            width: 50,
            formatter: function (value, row, index) {
                var pageNumber = $('#table').bootstrapTable('getOptions').pageNumber;
                var pageSize = $('#table').bootstrapTable('getOptions').pageSize == 'All' ? 0 : $('#table').bootstrapTable('getOptions').pageSize;
                return (pageNumber-1) * pageSize+index+1;
            }
        },{
            field: 'id',
            visible:false
        },{
            field: 'procurementTypeName',
            align: 'center',
            width: 100,
            title: '采购类型'
        },{
            field: 'purchaseDate',
            align: 'center',
            width: 100,
            title: '预计采购日期',
            formatter: function (value, row, index) {
                return $.myTime.UnixToDate(Number(value));
            }
        },{
            field: 'amount',
            align: 'center',
            width: 100,
            title: '预计采购金额',
            formatter: function (value, row, index) {
                //格式化金额
                return formatMoney(value);
            }
        },{
            field: 'vat',
            align: 'center',
            width: 100,
            title: '预计采购税率',
            formatter: function (value, row, index) {
                return value + '%';
            }
        },{
            field: 'procurementCost',
            align: 'center',
            width: 100,
            title: '预计采购成本',
            formatter: function (value, row, index) {
                //格式化金额
                return formatMoney(value);
            }
        },{
            field: 'statusName',
            align: 'center',
            width: 100,
            title: '状态'
        },{
            field: 'operator',
            align: 'center',
            width: 100,
            title: '操作人'
        },{
            field: 'createDate',
            align: 'center',
            width: 100,
            title: '操作时间',
            formatter: function (value, row, index) {
                return $.myTime.UnixToDate(Number(value));
            }
        },{
            field: 'remark',
            align: 'left',
            title: '备注',
            formatter: function (value, row, index) {
                var html = '';
                var arr = value.split('|')
                for(var i in arr){
                    html+='<p title="'+arr[i]+'">'+arr[i]+'</p>';
                }
                return html
            }
        },{
            title: '操作',
            align: 'center',
            width: 100,
            formatter: function (value, row, index) {
                if(row.statusName == '新建'){
                    var a = '<a href="javascript:void(0);" data-remark="'+row.remark+'" onclick="changeModal('+row.id+',0,this)" title="作废">作废</a>&nbsp;&nbsp;';
                    //根据角色权限判断是否要显示
                    var b = '';
                    var roleFuncCode = JSON.parse(sessionStorage.getItem("roleFuncCode"));
                    if($.inArray("/payment/edit",roleFuncCode)>=0){
                        b= '<a href="javascript:void(0);" onclick="finishModal('+index+',0)" title="完成开票">完成开票</a>&nbsp;&nbsp;';
                    }
                    return a + b
                }else{
                    return ''
                }
            }
        }]
    });
    $('#costEstimatetable').bootstrapTable({
        /*height: top.frameHeight*0.7 ,*/
        url: ctx + '/costEstimate/query', //这个接口需要处理bootstrap table传递的固定参数
        method:'post',
        dataType: "json",
        cache: false,   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",   //post请求,content type默认设置为 text/plain,在服务端直接通过 @RequestParam参数映射是获取不到的。
        striped: true,      //是否显示行间隔色
        pagination: false,     //是否显示分页（*）
        sortable: false,      //是否启用排序
        sortOrder: "asc",     //排序方式
        queryParamsType:'',  //默认值为 'limit' ,在默认情况下 传给服务端的参数为：offset,limit,sort
        //设置为 ''  在这种情况下传给服务器的参数为：pageSize,pageNumber
        queryParams : queryParams,    //前端调用服务时，会默认传递上边提到的参数，如果需要添加自定义参数，可以自定义一个函数返回请求参数
        strictSearch: true,
        clickToSelect: true,    //是否启用点击选中行
        searchOnEnterKey: true,
        showFooter: false,
        // responseHandler:function(res){
        //     //远程数据加载之前,处理程序响应数据格式,对象包含的参数: 我们可以对返回的数据格式进行处理
        //     //在ajax后我们可以在这里进行一些事件的处理
        //     return {
        //         rows:res.data,
        //         total:res.data.length
        //     }
        // },
        onLoadSuccess:function (data) {
            $('[data-toggle="tooltip"]').tooltip();
        },
        columns: [{
            title: '序号',  //标题  可不加
            align: 'center',
            width: 50,
            formatter: function (value, row, index) {
                return index+1;
            }
        },{
            field: 'id',
            visible:false
        },{
            field: 'orgName',
            align: 'center',
            width: 100,
            title: '使用部门'
        },{
            field: 'salMonth',
            align: 'center',
            width: 100,
            title: '预计发生月份'
        },{
            field: 'levelName',
            align: 'center',
            width: 100,
            title: '人员级别'
        },{
            field: 'totalAmount',
            align: 'center',
            width: 100,
            title: '单价',
            formatter: function (value, row, index) {
                return value/row.day;
            }
        },{
            field: 'day',
            align: 'center',
            width: 100,
            title: '预计人天'
        },{
            field: 'totalAmount',
            align: 'center',
            width: 100,
            title: '预计人工成本',
            formatter: function (value, row, index) {
                //格式化金额
                return formatMoney(value);
            }
        },{
            field: 'statusName',
            align: 'center',
            width: 100,
            title: '状态'
        },{
            field: 'operator',
            align: 'center',
            width: 100,
            title: '操作人'
        },{
            field: 'createDate',
            align: 'center',
            width: 100,
            title: '操作时间',
            formatter: function (value, row, index) {
                return $.myTime.UnixToDate(Number(value));
            }
        },{
            field: 'remark',
            align: 'left',
            title: '备注',
            formatter: function (value, row, index) {
                var html = '';
                var arr = value.split('|');
                for(var i in arr){
                    html+='<p title="'+arr[i]+'">'+arr[i]+'</p>';
                }
                return html
            }
        },{
            title: '操作',
            align: 'center',
            width: 100,
            formatter: function (value, row, index) {
                //if(row.statusName == '新建'){
                    var a = '<a href="javascript:void(0);" data-remark="'+row.remark+'"  onclick="changeModal('+row.id+',1,this)" title="作废">作废</a>&nbsp;&nbsp;';
                    //根据角色权限判断是否要显示
                    return a
                //}else{
                //    return ''
                //}
            }
        }]
    });
    $('#directEstimatetable').bootstrapTable({
        /*height: top.frameHeight*0.7 ,*/
        url: ctx + '/directEstimate/query', //这个接口需要处理bootstrap table传递的固定参数
        method:'post',
        dataType: "json",
        cache: false,   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",   //post请求,content type默认设置为 text/plain,在服务端直接通过 @RequestParam参数映射是获取不到的。
        striped: true,      //是否显示行间隔色
        pagination: false,     //是否显示分页（*）
        sortable: false,      //是否启用排序
        sortOrder: "asc",     //排序方式
        queryParamsType:'',  //默认值为 'limit' ,在默认情况下 传给服务端的参数为：offset,limit,sort
        //设置为 ''  在这种情况下传给服务器的参数为：pageSize,pageNumber
        queryParams : queryParams,    //前端调用服务时，会默认传递上边提到的参数，如果需要添加自定义参数，可以自定义一个函数返回请求参数
        sidePagination: "server",   //分页方式：client客户端分页，server服务端分页（*）
        responseHandler:function(res){
            //远程数据加载之前,处理程序响应数据格式,对象包含的参数: 我们可以对返回的数据格式进行处理
            //在ajax后我们可以在这里进行一些事件的处理
            tableData = res.data;
            return {
                rows:res.data,
                total:res.data.length
            }
        },
        strictSearch: true,
        clickToSelect: true,    //是否启用点击选中行
        searchOnEnterKey: true,
        showFooter: false,
        onLoadSuccess:function () {
            $('[data-toggle="tooltip"]').tooltip();
        },
        columns: [{
            title: '序号',  //标题  可不加
            align: 'center',
            width: 50,
            formatter: function (value, row, index) {
                var pageNumber = $('#table').bootstrapTable('getOptions').pageNumber;
                var pageSize = $('#table').bootstrapTable('getOptions').pageSize == 'All' ? 0 : $('#table').bootstrapTable('getOptions').pageSize;
                return (pageNumber-1) * pageSize+index+1;
            }
        },{
            field: 'id',
            visible:false
        },{
            field: 'costDate',
            align: 'center',
            width: 100,
            title: '预计发生月份'
        },{
            field: 'costCategoryName',
            align: 'center',
            width: 100,
            title: '预计费用类别'
        },{
            field: 'costTypeName',
            align: 'center',
            width: 100,
            title: '预计费用类型'
        },{
            field: 'costAmount',
            align: 'center',
            width: 100,
            title: '预计费用金额',
            formatter: function (value, row, index) {
                //格式化金额
                return formatMoney(value);
            }
        },{
            field: 'statusName',
            align: 'center',
            width: 100,
            title: '状态'
        },{
            field: 'operator',
            align: 'center',
            width: 100,
            title: '操作人'
        },{
            field: 'createDate',
            align: 'center',
            width: 100,
            title: '操作时间',
            formatter: function (value, row, index) {
                return $.myTime.UnixToDate(Number(value));
            }
        },{
            field: 'remark',
            align: 'left',
            title: '备注',
            formatter: function (value, row, index) {
                var html = '';
                var arr = value.split('|')
                for(var i in arr){
                    html+='<p title="'+arr[i]+'">'+arr[i]+'</p>';
                }
                return html
            }
        },{
            title: '操作',
            align: 'center',
            width: 100,
            formatter: function (value, row, index) {
                if(row.statusName == '新建'){
                    var a = '<a href="javascript:void(0);" data-remark="'+row.remark+'"  onclick="changeModal('+row.id+',2,this)" title="作废">作废</a>&nbsp;&nbsp;';
                    return a
                }else{
                    return ''
                }
            }
        }]
    });


    //人工预估汇总
    $('#costGather').bootstrapTable({
        /*height: top.frameHeight*0.7 ,*/
        url: ctx + '/costEstimate/queryApproved', //这个接口需要处理bootstrap table传递的固定参数
        method:'post',
        dataType: "json",
        cache: false,   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",   //post请求,content type默认设置为 text/plain,在服务端直接通过 @RequestParam参数映射是获取不到的。
        striped: true,      //是否显示行间隔色
        pagination: false,     //是否显示分页（*）
        sortable: false,      //是否启用排序
        sortOrder: "asc",     //排序方式
        queryParamsType:'',  //默认值为 'limit' ,在默认情况下 传给服务端的参数为：offset,limit,sort
        //设置为 ''  在这种情况下传给服务器的参数为：pageSize,pageNumber
        queryParams : queryParams,    //前端调用服务时，会默认传递上边提到的参数，如果需要添加自定义参数，可以自定义一个函数返回请求参数
        strictSearch: true,
        searchOnEnterKey: true,
        showFooter: false,
        onLoadSuccess:function () {
            $('[data-toggle="tooltip"]').tooltip();
        },
        columns: [{
            title: '序号',  //标题  可不加
            align: 'center',
            width: 50,
            formatter: function (value, row, index) {
                return index+1;
            }
        },{
            field: 'orgName',
            align: 'center',
            width: 100,
            title: '使用部门'
        },{
            field: 'day',
            align: 'center',
            width: 100,
            title: '预计人天'
        },{
            field: 'totalAmount',
            align: 'center',
            width: 100,
            title: '预计人工成本',
            formatter: function (value, row, index) {
                //格式化金额
                return formatMoney(value);
            }
        }]
    });

    //人工预估审批
    $('#costApproval').bootstrapTable({
        /*height: top.frameHeight*0.7 ,*/
        url: ctx + '/costEstimate/queryPendApproval', //这个接口需要处理bootstrap table传递的固定参数
        method:'post',
        dataType: "json",
        cache: false,   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",   //post请求,content type默认设置为 text/plain,在服务端直接通过 @RequestParam参数映射是获取不到的。
        striped: true,      //是否显示行间隔色
        pagination: false,     //是否显示分页（*）
        sortable: false,      //是否启用排序
        sortOrder: "asc",     //排序方式
        queryParamsType:'',  //默认值为 'limit' ,在默认情况下 传给服务端的参数为：offset,limit,sort
        //设置为 ''  在这种情况下传给服务器的参数为：pageSize,pageNumber
        queryParams : queryParams,    //前端调用服务时，会默认传递上边提到的参数，如果需要添加自定义参数，可以自定义一个函数返回请求参数
        strictSearch: true,
        searchOnEnterKey: true,
        showFooter: false,
        onLoadSuccess:function (data) {
            $('#approval').html('待审批（'+data.data.length+'）')
        },
        columns: [{
            title: '序号',  //标题  可不加
            align: 'center',
            width: 50,
            formatter: function (value, row, index) {
                return index+1;
            }
        },{
            field: 'orgName',
            align: 'center',
            width: 100,
            title: '使用部门'
        },{
            field: 'day',
            align: 'center',
            width: 100,
            title: '预计人天'
        },{
            field: 'totalAmount',
            align: 'center',
            width: 100,
            title: '预计人工成本',
            formatter: function (value, row, index) {
                //格式化金额
                return formatMoney(value);
            }
        },{
            title: '操作',
            align: 'center',
            width: 100,
            formatter: function (value, row, index) {
                return '<a href="javascript:void(0);" onclick="approval('+row.organizationId+ ')" title="确认审批">确认审批</a>&nbsp;&nbsp;';
            }
        }]
    });
}

function approval(orgId, projectId){
    if (confirm("确定审批？")) {
        $.ajax({
            type: "POST",
            url: ctx + '/costEstimate/approvalByOrg',
            data: {
                orgId: orgId,
                projectId : getQueryString('id')
            },
            success: function (data) {
                refreshCost();
                alert(data.data);
            }
        })
    }
}

function queryParams(params){
    var loginCode = window.sessionStorage.getItem("managerUser");
    return {
        projectId : getQueryString('id'),
        loginCode:loginCode
    }
}
function changeModal(id,itemindex, item){
    $('#changeModal').modal('show');
    $('#saveChange').off('click');
    $('#saveChange').on('click',function () {
        var urlArry = [
            '/procurementEstimate/invalid',
            '/costEstimate/invalid',
            '/directEstimate/invalid'
        ];
        if($("#changeForm").valid()) {
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: ctx + urlArry[itemindex],
                data: JSON.stringify({
                    id: id,
                    remark: item.getAttribute('data-remark')+'|'+$('#changeRemark').val()
                }),
                success: function (data) {
                    $('#changeModal').modal('hide');
                    document.getElementById("changeForm").reset();
                    if(data.code==200){
                        alert(data.msg);
                        switch (itemindex) {
                            case 0:
                                $('#table').bootstrapTable('refresh', {url: ctx + '/procurementEstimate/query'});
                                break;
                            case 1:
                                refreshCost();
                                break;
                            case 2:
                                $('#directEstimatetable').bootstrapTable('refresh', {url: ctx + '/directEstimate/query'});
                                break;
                        }
                    }else{
                        alert(data.msg);
                    }
                }
            })
        }
    });
}
function finishModal(index,itemindex){
    $('#finishModal').modal('show');
    $('#saveFinish').off('click');
    $('#saveFinish').on('click',function () {
        if($("#finishForm").valid()) {
            tableData[index].remark = tableData[index].remark+ '|'+ $('#finishRemark').val();
            tableData[index].realBillDate = $("#realBillDate").val();
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: ctx + "/procurementEstimate/makeInvoice",
                data: JSON.stringify(tableData[index]),
                success: function (data) {
                    $('#finishModal').modal('hide');
                    if(data.code==200){
                        $("#finishRemark").val('');
                        $('#table').bootstrapTable('refresh', {url: ctx + '/procurementEstimate/query'});
                    }else{
                        alert(data.msg);
                    }
                }
            })
        }
    });
}

/**
 * 系统参数管理，根据参数类型编码查询参数,并以下拉列表的形式加载到页面制定下拉菜单元素
 * @param paramTypeValue
 * @param elementId
 */
function getLevelValue(paramTypeValue, elementId) {
    $.ajax({
        type: "POST",
        url: ctx + "/parameter/queryByParameterType",
        data: {
            parameterType: paramTypeValue
        },
        success: function (data) {
            if (data.code == 200) {
                var html = '';
                html += '<option value="">请选择</option>';
                for (var i = 0; i < data.list.length; i++) {
                    html += '<option';
                    if (data.list[i].paramValue) {
                        html += ' data-val="' + data.list[i].paramValue + '"'
                    }
                    html += ' value="' + data.list[i].paramId + '">' + data.list[i].paramName + '(' + data.list[i].paramValue + ')</option>';
                }
                $(elementId).append(html);
            }
        }
    });
}

function refreshCost() {
    $('#costEstimatetable').bootstrapTable('refresh', {url: ctx + '/costEstimate/query'});
    $('#costApproval').bootstrapTable('refresh', {url: ctx + '/costEstimate/queryPendApproval'});
    $('#costGather').bootstrapTable('refresh', {url: ctx + '/costEstimate/queryApproved'});
}